// 登录
module.exports = async (req, res) => {
  // 导入管理员集合
  const rootUser = require('../../model/rootUser')
  const bcrypt = require('bcryptjs')
  const SECREY = require('../../key')
  const jwt = require('jsonwebtoken')

  // 获取提交的数据
  const { name, password } = req.body

  // 查询用户,注意要携带 密码，没有为 null
  const user = await  rootUser.findOne({name}).select('+password')
  if (!user) {
    return res.status(422).send({
      message: '用户不存在'
    })
  }

  // 对比密码, 返回 true， false
  const isValid = bcrypt.compareSync(password, user.password)

  if (!isValid) {
    return res.status(422).send({
      message: '密码错误'
    })
  }

  // 以上验证成功了，证明该用户存在，返回 token 记录用户身份
  const token = jwt.sign({id: user._id}, SECREY)

  // 验证成功了，存储用户的信息
  req.user = user
  console.log(user)  // 必须为此值{ _id: 5fd1c6956d0f1d0b2cb1c842, name: '佐助', __v: 0 }
  
  res.status(200).send({
    message: '登录成功',
    token,
    name: user.name
  })
}